/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Cluster
集群相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

#import <Foundation/Foundation.h>
#import <JDCloudOCSDKKubernetes/KubernetesApiModel.h>


@implementation KubernetesDescribeVersionsRequest
-(id) initWithRegion:(NSString *)regionId
masterVersion:(NSString*)masterVersion { 
    self.regionId = regionId;
    self.masterVersion = masterVersion;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
masterVersion:(NSString*)masterVersion { 
    self.regionId = regionId;
    self.version = version;
    self.masterVersion = masterVersion;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self masterVersion])
    {
        [result setValue:[self masterVersion] forKey:@"masterVersion"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.masterVersion = [dictionary objectForKey:@"masterVersion"];
    return self;
} 

@end
@implementation KubernetesDescribeUpgradableMasterVersionsRequest
-(id) initWithRegion:(NSString *)regionId
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesDescribeNodeVersionRequest
-(id) initWithRegion:(NSString *)regionId
nodeVersion:(NSString*)nodeVersion { 
    self.regionId = regionId;
    self.nodeVersion = nodeVersion;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
nodeVersion:(NSString*)nodeVersion { 
    self.regionId = regionId;
    self.version = version;
    self.nodeVersion = nodeVersion;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self nodeVersion])
    {
        [result setValue:[self nodeVersion] forKey:@"nodeVersion"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.nodeVersion = [dictionary objectForKey:@"nodeVersion"];
    return self;
} 

@end
@implementation KubernetesDescribeUpgradableNodeVersionsRequest
-(id) initWithRegion:(NSString *)regionId
nodeGroupIds:(NSArray<NSString*>*)nodeGroupIds
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.nodeGroupIds = nodeGroupIds;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
nodeGroupIds:(NSArray<NSString*>*)nodeGroupIds
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.nodeGroupIds = nodeGroupIds;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self nodeGroupIds])
    {
        [result setValue:[self nodeGroupIds] forKey:@"nodeGroupIds"];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.nodeGroupIds = [dictionary objectForKey:@"nodeGroupIds"];
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesDescribeNodeGroupRequest
-(id) initWithRegion:(NSString *)regionId
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.nodeGroupId = nodeGroupId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.version = version;
    self.nodeGroupId = nodeGroupId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self nodeGroupId])
    {
        [result setValue:[self nodeGroupId] forKey:@"nodeGroupId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.nodeGroupId = [dictionary objectForKey:@"nodeGroupId"];
    return self;
} 

@end
@implementation KubernetesModifyNodeGroupRequest
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.name = name;
    self.descriptionValue = descriptionValue;
    self.nodeGroupId = nodeGroupId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.version = version;
    self.name = name;
    self.descriptionValue = descriptionValue;
    self.nodeGroupId = nodeGroupId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self descriptionValue])
    {
        [result setValue:[self descriptionValue] forKey:@"description"];
    }
    if([self nodeGroupId])
    {
        [result setValue:[self nodeGroupId] forKey:@"nodeGroupId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.descriptionValue = [dictionary objectForKey:@"description"];
    self.nodeGroupId = [dictionary objectForKey:@"nodeGroupId"];
    return self;
} 

@end
@implementation KubernetesSetNodeGroupSizeRequest
-(id) initWithRegion:(NSString *)regionId
expectCount:(NSNumber*)expectCount
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.expectCount = expectCount;
    self.nodeGroupId = nodeGroupId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
expectCount:(NSNumber*)expectCount
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.version = version;
    self.expectCount = expectCount;
    self.nodeGroupId = nodeGroupId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self expectCount])
    {
        [result setValue:[self expectCount] forKey:@"expectCount"];
    }
    if([self nodeGroupId])
    {
        [result setValue:[self nodeGroupId] forKey:@"nodeGroupId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.expectCount = [dictionary objectForKey:@"expectCount"];
    self.nodeGroupId = [dictionary objectForKey:@"nodeGroupId"];
    return self;
} 

@end
@implementation KubernetesCreateNodeGroupResult
-(id) initWithNodeGroupId:(NSString*) nodeGroupId { 
    self.nodeGroupId = nodeGroupId;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self nodeGroupId])
    {
        [result setValue:[self nodeGroupId] forKey:@"nodeGroupId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.nodeGroupId = [dictionary objectForKey:@"nodeGroupId"];
    return self;
} 

@end
@implementation KubernetesSetAutoRepairRequest
-(id) initWithRegion:(NSString *)regionId
enabled:(NSNumber*)enabled
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.enabled = enabled;
    self.nodeGroupId = nodeGroupId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
enabled:(NSNumber*)enabled
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.version = version;
    self.enabled = enabled;
    self.nodeGroupId = nodeGroupId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self enabled])
    {
        [result setValue:[self enabled] forKey:@"enabled"];
    }
    if([self nodeGroupId])
    {
        [result setValue:[self nodeGroupId] forKey:@"nodeGroupId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.enabled = [dictionary objectForKey:@"enabled"];
    self.nodeGroupId = [dictionary objectForKey:@"nodeGroupId"];
    return self;
} 

@end
@implementation KubernetesRollbackNodeGroupUpgradeRequest
-(id) initWithRegion:(NSString *)regionId
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.nodeGroupId = nodeGroupId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.version = version;
    self.nodeGroupId = nodeGroupId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self nodeGroupId])
    {
        [result setValue:[self nodeGroupId] forKey:@"nodeGroupId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.nodeGroupId = [dictionary objectForKey:@"nodeGroupId"];
    return self;
} 

@end
@implementation KubernetesDeleteNodeGroupRequest
-(id) initWithRegion:(NSString *)regionId
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.nodeGroupId = nodeGroupId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
nodeGroupId:(NSString*)nodeGroupId { 
    self.regionId = regionId;
    self.version = version;
    self.nodeGroupId = nodeGroupId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self nodeGroupId])
    {
        [result setValue:[self nodeGroupId] forKey:@"nodeGroupId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.nodeGroupId = [dictionary objectForKey:@"nodeGroupId"];
    return self;
} 

@end
@implementation KubernetesDescribeClusterRequest
-(id) initWithRegion:(NSString *)regionId
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesModifyClusterRequest
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.name = name;
    self.descriptionValue = descriptionValue;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.name = name;
    self.descriptionValue = descriptionValue;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self descriptionValue])
    {
        [result setValue:[self descriptionValue] forKey:@"description"];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.descriptionValue = [dictionary objectForKey:@"description"];
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesSetUserMetricsRequest
-(id) initWithRegion:(NSString *)regionId
enabled:(NSNumber*)enabled
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.enabled = enabled;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
enabled:(NSNumber*)enabled
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.enabled = enabled;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self enabled])
    {
        [result setValue:[self enabled] forKey:@"enabled"];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.enabled = [dictionary objectForKey:@"enabled"];
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesDescribeProgressRequest
-(id) initWithRegion:(NSString *)regionId
nodeGroupIds:(NSArray<NSString*>*)nodeGroupIds
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.nodeGroupIds = nodeGroupIds;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
nodeGroupIds:(NSArray<NSString*>*)nodeGroupIds
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.nodeGroupIds = nodeGroupIds;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self nodeGroupIds])
    {
        [result setValue:[self nodeGroupIds] forKey:@"nodeGroupIds"];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.nodeGroupIds = [dictionary objectForKey:@"nodeGroupIds"];
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesCreateClusterResult
-(id) initWithClusterId:(NSString*) clusterId { 
    self.clusterId = clusterId;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesUpgradeClusterRequest
-(id) initWithRegion:(NSString *)regionId
scope:(NSString*)scope
nodeGroupIds:(NSArray<NSString*>*)nodeGroupIds
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.scope = scope;
    self.nodeGroupIds = nodeGroupIds;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
scope:(NSString*)scope
nodeGroupIds:(NSArray<NSString*>*)nodeGroupIds
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.scope = scope;
    self.nodeGroupIds = nodeGroupIds;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self scope])
    {
        [result setValue:[self scope] forKey:@"scope"];
    }
    if([self nodeGroupIds])
    {
        [result setValue:[self nodeGroupIds] forKey:@"nodeGroupIds"];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.scope = [dictionary objectForKey:@"scope"];
    self.nodeGroupIds = [dictionary objectForKey:@"nodeGroupIds"];
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesDeleteClusterRequest
-(id) initWithRegion:(NSString *)regionId
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesAbortUpgradeRequest
-(id) initWithRegion:(NSString *)regionId
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesDescribeVersionsResult
-(id) initWithMasterVersions:(NSArray<MasterVersion*>*) masterVersions { 
    self.masterVersions = masterVersions;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self masterVersions])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self masterVersions] count]; i++) {
            MasterVersion* item = [[self masterVersions] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"masterVersions"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* masterVersionsArray = [dictionary objectForKey:@"masterVersions"];
    if(masterVersionsArray&&![masterVersionsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [masterVersionsArray count];i++)
        {
        MasterVersion* item = [[MasterVersion alloc]initWithDic:[masterVersionsArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.masterVersions = propertyArray;
    }
    return self;
} 

@end
@implementation KubernetesDescribeNodeVersionResult
-(id) initWithNodeVersion:(NodeVersion*) nodeVersion { 
    self.nodeVersion = nodeVersion;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self nodeVersion])
    {
        [result setValue:[[self nodeVersion] dictionary]forKey:@"nodeVersion"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.nodeVersion = [[NodeVersion alloc]initWithDic:[dictionary objectForKey:@"nodeVersion"]];
    return self;
} 

@end
  
@implementation KubernetesDescribeVersionsResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeVersionsResult* result = [[KubernetesDescribeVersionsResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeVersionsResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesDescribeUpgradableMasterVersionsResult
-(id) initWithMasterVersions:(NSArray<MasterVersion*>*) masterVersions { 
    self.masterVersions = masterVersions;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self masterVersions])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self masterVersions] count]; i++) {
            MasterVersion* item = [[self masterVersions] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"masterVersions"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* masterVersionsArray = [dictionary objectForKey:@"masterVersions"];
    if(masterVersionsArray&&![masterVersionsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [masterVersionsArray count];i++)
        {
        MasterVersion* item = [[MasterVersion alloc]initWithDic:[masterVersionsArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.masterVersions = propertyArray;
    }
    return self;
} 

@end
@implementation KubernetesDescribeServerConfigRequest
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation KubernetesDescribeServerConfigResult
-(id) initWithServerConfig:(ServerConfig*) serverConfig { 
    self.serverConfig = serverConfig;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self serverConfig])
    {
        [result setValue:[[self serverConfig] dictionary]forKey:@"serverConfig"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.serverConfig = [[ServerConfig alloc]initWithDic:[dictionary objectForKey:@"serverConfig"]];
    return self;
} 

@end
@implementation KubernetesDescribeUpgradableNodeVersionsResult
-(id) initWithNdoeVersions:(NSArray<NodeVersion*>*) ndoeVersions { 
    self.ndoeVersions = ndoeVersions;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self ndoeVersions])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self ndoeVersions] count]; i++) {
            NodeVersion* item = [[self ndoeVersions] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"ndoeVersions"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* ndoeVersionsArray = [dictionary objectForKey:@"ndoeVersions"];
    if(ndoeVersionsArray&&![ndoeVersionsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [ndoeVersionsArray count];i++)
        {
        NodeVersion* item = [[NodeVersion alloc]initWithDic:[ndoeVersionsArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.ndoeVersions = propertyArray;
    }
    return self;
} 

@end
  
@implementation KubernetesDescribeUpgradableMasterVersionsResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeUpgradableMasterVersionsResult* result = [[KubernetesDescribeUpgradableMasterVersionsResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeUpgradableMasterVersionsResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation KubernetesDescribeServerConfigResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeServerConfigResult* result = [[KubernetesDescribeServerConfigResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeServerConfigResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation KubernetesDescribeNodeVersionResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeNodeVersionResult* result = [[KubernetesDescribeNodeVersionResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeNodeVersionResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation KubernetesDescribeUpgradableNodeVersionsResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeUpgradableNodeVersionsResult* result = [[KubernetesDescribeUpgradableNodeVersionsResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeUpgradableNodeVersionsResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesDescribeNodeGroupsRequest
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
tags:(NSArray<KubernetesTagFilter*>*)tags
filters:(NSArray<Filter*>*)filters { 
    self.regionId = regionId;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.tags = tags;
    self.filters = filters;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
tags:(NSArray<KubernetesTagFilter*>*)tags
filters:(NSArray<Filter*>*)filters { 
    self.regionId = regionId;
    self.version = version;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.tags = tags;
    self.filters = filters;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self tags])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self tags] count]; i++) {
            KubernetesTagFilter* item = [[self tags] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"tags"];
    }
    if([self filters])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self filters] count]; i++) {
            Filter* item = [[self filters] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"filters"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    NSArray* tagsArray = [dictionary objectForKey:@"tags"];
    if(tagsArray&&![tagsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [tagsArray count];i++)
        {
        KubernetesTagFilter* item = [[KubernetesTagFilter alloc]initWithDic:[tagsArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.tags = propertyArray;
    }
    NSArray* filtersArray = [dictionary objectForKey:@"filters"];
    if(filtersArray&&![filtersArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [filtersArray count];i++)
        {
        Filter* item = [[Filter alloc]initWithDic:[filtersArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.filters = propertyArray;
    }
    return self;
} 

@end
@implementation KubernetesSetAutoRepairResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation KubernetesSetAutoRepairResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesSetAutoRepairResult* result = [[KubernetesSetAutoRepairResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesSetAutoRepairResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesSetNodeGroupSizeResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation KubernetesDeleteNodeGroupResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation KubernetesDeleteNodeGroupResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDeleteNodeGroupResult* result = [[KubernetesDeleteNodeGroupResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDeleteNodeGroupResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation KubernetesCreateNodeGroupResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesCreateNodeGroupResult* result = [[KubernetesCreateNodeGroupResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesCreateNodeGroupResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesDescribeNodeGroupsResult
-(id) initWithNodeGroups:(NSArray<NodeGroup*>*) nodeGroups
        totalCount:(NSNumber*)totalCount { 
    self.nodeGroups = nodeGroups;               
    self.totalCount = totalCount;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self nodeGroups])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self nodeGroups] count]; i++) {
            NodeGroup* item = [[self nodeGroups] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"nodeGroups"];
    }
    if([self totalCount])
    {
        [result setValue:[self totalCount] forKey:@"totalCount"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* nodeGroupsArray = [dictionary objectForKey:@"nodeGroups"];
    if(nodeGroupsArray&&![nodeGroupsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [nodeGroupsArray count];i++)
        {
        NodeGroup* item = [[NodeGroup alloc]initWithDic:[nodeGroupsArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.nodeGroups = propertyArray;
    }
    self.totalCount = [dictionary objectForKey:@"totalCount"];
    return self;
} 

@end
  
@implementation KubernetesDescribeNodeGroupsResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeNodeGroupsResult* result = [[KubernetesDescribeNodeGroupsResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeNodeGroupsResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesDescribeNodeGroupResult
-(id) initWithNodeGroup:(NodeGroup*) nodeGroup { 
    self.nodeGroup = nodeGroup;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self nodeGroup])
    {
        [result setValue:[[self nodeGroup] dictionary]forKey:@"nodeGroup"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.nodeGroup = [[NodeGroup alloc]initWithDic:[dictionary objectForKey:@"nodeGroup"]];
    return self;
} 

@end
@implementation KubernetesRollbackNodeGroupUpgradeResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation KubernetesDescribeNodeGroupResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeNodeGroupResult* result = [[KubernetesDescribeNodeGroupResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeNodeGroupResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation KubernetesRollbackNodeGroupUpgradeResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesRollbackNodeGroupUpgradeResult* result = [[KubernetesRollbackNodeGroupUpgradeResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesRollbackNodeGroupUpgradeResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesCreateNodeGroupRequest
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
clusterId:(NSString*)clusterId
nodeConfig:(NodeConfigSpec*)nodeConfig
azs:(NSArray<NSString*>*)azs
initialNodeCount:(NSNumber*)initialNodeCount
vpcId:(NSString*)vpcId
nodeCidr:(NSString*)nodeCidr
autoRepair:(NSNumber*)autoRepair { 
    self.regionId = regionId;
    self.name = name;
    self.descriptionValue = descriptionValue;
    self.clusterId = clusterId;
    self.nodeConfig = nodeConfig;
    self.azs = azs;
    self.initialNodeCount = initialNodeCount;
    self.vpcId = vpcId;
    self.nodeCidr = nodeCidr;
    self.autoRepair = autoRepair;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
clusterId:(NSString*)clusterId
nodeConfig:(NodeConfigSpec*)nodeConfig
azs:(NSArray<NSString*>*)azs
initialNodeCount:(NSNumber*)initialNodeCount
vpcId:(NSString*)vpcId
nodeCidr:(NSString*)nodeCidr
autoRepair:(NSNumber*)autoRepair { 
    self.regionId = regionId;
    self.version = version;
    self.name = name;
    self.descriptionValue = descriptionValue;
    self.clusterId = clusterId;
    self.nodeConfig = nodeConfig;
    self.azs = azs;
    self.initialNodeCount = initialNodeCount;
    self.vpcId = vpcId;
    self.nodeCidr = nodeCidr;
    self.autoRepair = autoRepair;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self descriptionValue])
    {
        [result setValue:[self descriptionValue] forKey:@"description"];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    if([self nodeConfig])
    {
        [result setValue:[[self nodeConfig] dictionary]forKey:@"nodeConfig"];
    }
    if([self azs])
    {
        [result setValue:[self azs] forKey:@"azs"];
    }
    if([self initialNodeCount])
    {
        [result setValue:[self initialNodeCount] forKey:@"initialNodeCount"];
    }
    if([self vpcId])
    {
        [result setValue:[self vpcId] forKey:@"vpcId"];
    }
    if([self nodeCidr])
    {
        [result setValue:[self nodeCidr] forKey:@"nodeCidr"];
    }
    if([self autoRepair])
    {
        [result setValue:[self autoRepair] forKey:@"autoRepair"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.descriptionValue = [dictionary objectForKey:@"description"];
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    self.nodeConfig = [[NodeConfigSpec alloc]initWithDic:[dictionary objectForKey:@"nodeConfig"]];
    self.azs = [dictionary objectForKey:@"azs"];
    self.initialNodeCount = [dictionary objectForKey:@"initialNodeCount"];
    self.vpcId = [dictionary objectForKey:@"vpcId"];
    self.nodeCidr = [dictionary objectForKey:@"nodeCidr"];
    self.autoRepair = [dictionary objectForKey:@"autoRepair"];
    return self;
} 

@end
@implementation KubernetesModifyNodeGroupResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation KubernetesModifyNodeGroupResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesModifyNodeGroupResult* result = [[KubernetesModifyNodeGroupResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesModifyNodeGroupResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation KubernetesSetNodeGroupSizeResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesSetNodeGroupSizeResult* result = [[KubernetesSetNodeGroupSizeResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesSetNodeGroupSizeResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesDescribeQuotasResult
-(id) initWithQuotas:(NSArray<KubernetesQuota*>*) quotas { 
    self.quotas = quotas;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self quotas])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self quotas] count]; i++) {
            KubernetesQuota* item = [[self quotas] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"quotas"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* quotasArray = [dictionary objectForKey:@"quotas"];
    if(quotasArray&&![quotasArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [quotasArray count];i++)
        {
        KubernetesQuota* item = [[KubernetesQuota alloc]initWithDic:[quotasArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.quotas = propertyArray;
    }
    return self;
} 

@end
  
@implementation KubernetesDescribeQuotasResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeQuotasResult* result = [[KubernetesDescribeQuotasResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeQuotasResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesDescribeQuotasRequest
-(id) initWithRegion:(NSString *)regionId
filters:(NSArray<Filter*>*)filters { 
    self.regionId = regionId;
    self.filters = filters;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
filters:(NSArray<Filter*>*)filters { 
    self.regionId = regionId;
    self.version = version;
    self.filters = filters;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self filters])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self filters] count]; i++) {
            Filter* item = [[self filters] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"filters"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* filtersArray = [dictionary objectForKey:@"filters"];
    if(filtersArray&&![filtersArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [filtersArray count];i++)
        {
        Filter* item = [[Filter alloc]initWithDic:[filtersArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.filters = propertyArray;
    }
    return self;
} 

@end
@implementation KubernetesDescribeProgressResult
-(id) initWithMasterProgress:(MasterProgress*) masterProgress
        nodeGroupProgresses:(NSArray<NodeGroupProgress*>*)nodeGroupProgresses { 
    self.masterProgress = masterProgress;               
    self.nodeGroupProgresses = nodeGroupProgresses;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self masterProgress])
    {
        [result setValue:[[self masterProgress] dictionary]forKey:@"masterProgress"];
    }
    if([self nodeGroupProgresses])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self nodeGroupProgresses] count]; i++) {
            NodeGroupProgress* item = [[self nodeGroupProgresses] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"nodeGroupProgresses"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.masterProgress = [[MasterProgress alloc]initWithDic:[dictionary objectForKey:@"masterProgress"]];
    NSArray* nodeGroupProgressesArray = [dictionary objectForKey:@"nodeGroupProgresses"];
    if(nodeGroupProgressesArray&&![nodeGroupProgressesArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [nodeGroupProgressesArray count];i++)
        {
        NodeGroupProgress* item = [[NodeGroupProgress alloc]initWithDic:[nodeGroupProgressesArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.nodeGroupProgresses = propertyArray;
    }
    return self;
} 

@end
  
@implementation KubernetesDescribeProgressResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeProgressResult* result = [[KubernetesDescribeProgressResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeProgressResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesDeleteClusterResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation KubernetesDeleteClusterResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDeleteClusterResult* result = [[KubernetesDeleteClusterResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDeleteClusterResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesSetAddonsResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation KubernetesDescribeClustersResult
-(id) initWithClusters:(NSArray<Cluster*>*) clusters
        totalCount:(NSNumber*)totalCount { 
    self.clusters = clusters;               
    self.totalCount = totalCount;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self clusters])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self clusters] count]; i++) {
            Cluster* item = [[self clusters] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"clusters"];
    }
    if([self totalCount])
    {
        [result setValue:[self totalCount] forKey:@"totalCount"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* clustersArray = [dictionary objectForKey:@"clusters"];
    if(clustersArray&&![clustersArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [clustersArray count];i++)
        {
        Cluster* item = [[Cluster alloc]initWithDic:[clustersArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.clusters = propertyArray;
    }
    self.totalCount = [dictionary objectForKey:@"totalCount"];
    return self;
} 

@end
@implementation KubernetesSetAddonsRequest
-(id) initWithRegion:(NSString *)regionId
addonsConfig:(NSArray<AddonConfigSpec*>*)addonsConfig
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.addonsConfig = addonsConfig;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
addonsConfig:(NSArray<AddonConfigSpec*>*)addonsConfig
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.addonsConfig = addonsConfig;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self addonsConfig])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self addonsConfig] count]; i++) {
            AddonConfigSpec* item = [[self addonsConfig] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"addonsConfig"];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* addonsConfigArray = [dictionary objectForKey:@"addonsConfig"];
    if(addonsConfigArray&&![addonsConfigArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [addonsConfigArray count];i++)
        {
        AddonConfigSpec* item = [[AddonConfigSpec alloc]initWithDic:[addonsConfigArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.addonsConfig = propertyArray;
    }
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesAbortUpgradeResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation KubernetesAbortUpgradeResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesAbortUpgradeResult* result = [[KubernetesAbortUpgradeResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesAbortUpgradeResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesModifyClusterResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation KubernetesSetUserMetricsResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation KubernetesCreateClusterResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesCreateClusterResult* result = [[KubernetesCreateClusterResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesCreateClusterResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation KubernetesDescribeClustersResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeClustersResult* result = [[KubernetesDescribeClustersResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeClustersResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesDescribeClusterResult
-(id) initWithCluster:(Cluster*) cluster { 
    self.cluster = cluster;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self cluster])
    {
        [result setValue:[[self cluster] dictionary]forKey:@"cluster"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.cluster = [[Cluster alloc]initWithDic:[dictionary objectForKey:@"cluster"]];
    return self;
} 

@end
  
@implementation KubernetesDescribeClusterResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesDescribeClusterResult* result = [[KubernetesDescribeClusterResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesDescribeClusterResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesSetAutoUpgradeResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation KubernetesSetAutoUpgradeResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesSetAutoUpgradeResult* result = [[KubernetesSetAutoUpgradeResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesSetAutoUpgradeResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesSetAutoUpgradeRequest
-(id) initWithRegion:(NSString *)regionId
autoUpgrade:(NSNumber*)autoUpgrade
maintenanceWindow:(MaintenanceWindowSpec*)maintenanceWindow
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.autoUpgrade = autoUpgrade;
    self.maintenanceWindow = maintenanceWindow;
    self.clusterId = clusterId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
autoUpgrade:(NSNumber*)autoUpgrade
maintenanceWindow:(MaintenanceWindowSpec*)maintenanceWindow
clusterId:(NSString*)clusterId { 
    self.regionId = regionId;
    self.version = version;
    self.autoUpgrade = autoUpgrade;
    self.maintenanceWindow = maintenanceWindow;
    self.clusterId = clusterId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self autoUpgrade])
    {
        [result setValue:[self autoUpgrade] forKey:@"autoUpgrade"];
    }
    if([self maintenanceWindow])
    {
        [result setValue:[[self maintenanceWindow] dictionary]forKey:@"maintenanceWindow"];
    }
    if([self clusterId])
    {
        [result setValue:[self clusterId] forKey:@"clusterId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.autoUpgrade = [dictionary objectForKey:@"autoUpgrade"];
    self.maintenanceWindow = [[MaintenanceWindowSpec alloc]initWithDic:[dictionary objectForKey:@"maintenanceWindow"]];
    self.clusterId = [dictionary objectForKey:@"clusterId"];
    return self;
} 

@end
@implementation KubernetesUpgradeClusterResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation KubernetesUpgradeClusterResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesUpgradeClusterResult* result = [[KubernetesUpgradeClusterResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesUpgradeClusterResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation KubernetesModifyClusterResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesModifyClusterResult* result = [[KubernetesModifyClusterResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesModifyClusterResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesDescribeClustersRequest
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters { 
    self.regionId = regionId;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.filters = filters;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters { 
    self.regionId = regionId;
    self.version = version;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.filters = filters;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self filters])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self filters] count]; i++) {
            Filter* item = [[self filters] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"filters"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    NSArray* filtersArray = [dictionary objectForKey:@"filters"];
    if(filtersArray&&![filtersArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [filtersArray count];i++)
        {
        Filter* item = [[Filter alloc]initWithDic:[filtersArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.filters = propertyArray;
    }
    return self;
} 

@end
  
@implementation KubernetesSetAddonsResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesSetAddonsResult* result = [[KubernetesSetAddonsResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesSetAddonsResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation KubernetesSetUserMetricsResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
KubernetesSetUserMetricsResult* result = [[KubernetesSetUserMetricsResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(KubernetesSetUserMetricsResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation KubernetesCreateClusterRequest
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
basicAuth:(NSNumber*)basicAuth
clientCertificate:(NSNumber*)clientCertificate
azs:(NSArray<NSString*>*)azs
nodeGroup:(NodeGroupSpec*)nodeGroup
masterCidr:(NSString*)masterCidr
accessKey:(NSString*)accessKey
secretKey:(NSString*)secretKey
userMetrics:(NSNumber*)userMetrics
addonsConfig:(NSArray<AddonConfigSpec*>*)addonsConfig { 
    self.regionId = regionId;
    self.name = name;
    self.descriptionValue = descriptionValue;
    self.basicAuth = basicAuth;
    self.clientCertificate = clientCertificate;
    self.azs = azs;
    self.nodeGroup = nodeGroup;
    self.masterCidr = masterCidr;
    self.accessKey = accessKey;
    self.secretKey = secretKey;
    self.userMetrics = userMetrics;
    self.addonsConfig = addonsConfig;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
basicAuth:(NSNumber*)basicAuth
clientCertificate:(NSNumber*)clientCertificate
azs:(NSArray<NSString*>*)azs
nodeGroup:(NodeGroupSpec*)nodeGroup
masterCidr:(NSString*)masterCidr
accessKey:(NSString*)accessKey
secretKey:(NSString*)secretKey
userMetrics:(NSNumber*)userMetrics
addonsConfig:(NSArray<AddonConfigSpec*>*)addonsConfig { 
    self.regionId = regionId;
    self.version = version;
    self.name = name;
    self.descriptionValue = descriptionValue;
    self.basicAuth = basicAuth;
    self.clientCertificate = clientCertificate;
    self.azs = azs;
    self.nodeGroup = nodeGroup;
    self.masterCidr = masterCidr;
    self.accessKey = accessKey;
    self.secretKey = secretKey;
    self.userMetrics = userMetrics;
    self.addonsConfig = addonsConfig;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self name])
    {
        [result setValue:[self name] forKey:@"name"];
    }
    if([self descriptionValue])
    {
        [result setValue:[self descriptionValue] forKey:@"description"];
    }
    if([self basicAuth])
    {
        [result setValue:[self basicAuth] forKey:@"basicAuth"];
    }
    if([self clientCertificate])
    {
        [result setValue:[self clientCertificate] forKey:@"clientCertificate"];
    }
    if([self azs])
    {
        [result setValue:[self azs] forKey:@"azs"];
    }
    if([self nodeGroup])
    {
        [result setValue:[[self nodeGroup] dictionary]forKey:@"nodeGroup"];
    }
    if([self masterCidr])
    {
        [result setValue:[self masterCidr] forKey:@"masterCidr"];
    }
    if([self accessKey])
    {
        [result setValue:[self accessKey] forKey:@"accessKey"];
    }
    if([self secretKey])
    {
        [result setValue:[self secretKey] forKey:@"secretKey"];
    }
    if([self userMetrics])
    {
        [result setValue:[self userMetrics] forKey:@"userMetrics"];
    }
    if([self addonsConfig])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self addonsConfig] count]; i++) {
            AddonConfigSpec* item = [[self addonsConfig] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"addonsConfig"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.name = [dictionary objectForKey:@"name"];
    self.descriptionValue = [dictionary objectForKey:@"description"];
    self.basicAuth = [dictionary objectForKey:@"basicAuth"];
    self.clientCertificate = [dictionary objectForKey:@"clientCertificate"];
    self.azs = [dictionary objectForKey:@"azs"];
    self.nodeGroup = [[NodeGroupSpec alloc]initWithDic:[dictionary objectForKey:@"nodeGroup"]];
    self.masterCidr = [dictionary objectForKey:@"masterCidr"];
    self.accessKey = [dictionary objectForKey:@"accessKey"];
    self.secretKey = [dictionary objectForKey:@"secretKey"];
    self.userMetrics = [dictionary objectForKey:@"userMetrics"];
    NSArray* addonsConfigArray = [dictionary objectForKey:@"addonsConfig"];
    if(addonsConfigArray&&![addonsConfigArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [addonsConfigArray count];i++)
        {
        AddonConfigSpec* item = [[AddonConfigSpec alloc]initWithDic:[addonsConfigArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.addonsConfig = propertyArray;
    }
    return self;
} 

@end
 
